package com.ruoyi.domain.production;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

import java.util.Date;

/**
 * 生产订单对象 mes_production_order
 * 
 * @author ruoyi
 * @date 2024-01-01
 */
@Data
public class MesProductionOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单ID */
    private Long orderId;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderCode;

    /** 订单名称 */
    @Excel(name = "订单名称")
    private String orderName;

    /** 关联计划ID */
    @Excel(name = "关联计划ID")
    private Long planId;

    /** 关联计划编号 */
    @Excel(name = "关联计划编号")
    private String planCode;

    /** 产品ID */
    @Excel(name = "产品ID")
    private Long productId;

    /** 产品编码 */
    @Excel(name = "产品编码")
    private String productCode;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String productName;

    /** 产品规格 */
    @Excel(name = "产品规格")
    private String productSpec;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 订单数量 */
    @Excel(name = "订单数量")
    private Integer quantity;

    /** 已生产数量 */
    @Excel(name = "已生产数量")
    private Integer producedQty;

    /** 合格数量 */
    @Excel(name = "合格数量")
    private Integer qualifiedQty;

    /** 不合格数量 */
    @Excel(name = "不合格数量")
    private Integer unqualifiedQty;

    /** 订单日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "订单日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date orderDate;

    /** 需求日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "需求日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date requestDate;

    /** 生产车间ID */
    @Excel(name = "生产车间ID")
    private Long workshopId;

    /** 生产车间名称 */
    @Excel(name = "生产车间名称")
    private String workshopName;

    /** 订单来源（1正常生产 2返工生产 3委外生产） */
    @Excel(name = "订单来源", readConverterExp = "1=正常生产,2=返工生产,3=委外生产")
    private String orderSource;

    /** 优先级（1紧急 2高 3中 4低） */
    @Excel(name = "优先级", readConverterExp = "1=紧急,2=高,3=中,4=低")
    private String priority;

    /** 状态（0未下达 1已下达 2生产中 3已完成 4已取消） */
    @Excel(name = "状态", readConverterExp = "0=未下达,1=已下达,2=生产中,3=已完成,4=已取消")
    private String status;
}